package cc.rengu.redp.bizimpl.igas.dao;

import cc.rengu.redp.bizimpl.igas.bean.ChannelServiceInfo;
import cc.rengu.redp.bizimpl.igas.bean.LocalServiceInfo;
import cc.rengu.redp.bizimpl.igas.bean.TransChannelTxnInfo;
import cc.rengu.redp.bizimpl.igas.domain.PChannelCallCfg;
import cc.rengu.redp.bizimpl.igas.domain.PSrcChannelInfo;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 刘玉亮.LL
 * @since 2021-06-09
 */
@Repository
@DS("igas")
public interface PChannelCallCfgMapper extends BaseMapper<PChannelCallCfg> {

    /**
     * 通道服务调用配置表查询
     * @param instId
     * @return
     */
    PChannelCallCfg findPChannelCallCfgByUK(String instId, String primaryKey);

    /**
     * 通道服务调用配置表列表查询
     * @param pChannelCallCfg 对象
     * @return
     */
    List<PChannelCallCfg> getPChannelCallCfgList(PChannelCallCfg pChannelCallCfg);

    /**
     * 通道服务列表查询
     * @param instId
     * @return
     */
    List<ChannelServiceInfo> getChannelServiceInfoList(String instId);

    /**
     * 本地服务列表查询
     * @param instId
     * @return
     */
    List<LocalServiceInfo> getLocalServiceInfoList(String instId);

    /**
     * 交易渠道信息查询
     * @param instId
     * @return
     */
    List<PSrcChannelInfo> getSrcChannelInfoList(String instId);

    /**
     * 业务渠道交易列表查询
     * @param instId
     * @param msgSrcId
     * @param transChannelId
     * @return
     */
    List<TransChannelTxnInfo> getTransChannelTxnInfoList(String instId, String msgSrcId, String transChannelId);

    /**
     * 业务渠道交易列表查询
     * @param instId
     * @param msgSrcId
     * @param transChannelId
     * @return
     */
    TransChannelTxnInfo getTransChannelTxnInfoByUK(String instId, String msgSrcId, String transChannelId, String txnNum, String bizType);


    void addPChannelCallCfg(PChannelCallCfg pChannelCallCfg);

    void updPChannelCallCfg(PChannelCallCfg pChannelCallCfg);

    void delPChannelCallCfgByUK(PChannelCallCfg pChannelCallCfg);

}
